package com.proint1.udea.microcurriculo.ctl;

import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.Date;

import org.apache.log4j.Logger;
import org.zkoss.zhtml.Button;
import org.zkoss.zhtml.Messagebox;
import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.event.Event;
import org.zkoss.zk.ui.util.GenericForwardComposer;
import org.zkoss.zul.Listbox;
import org.zkoss.zul.Textbox;

import com.proint1.udea.microcurriculo.TbMicActa;
import com.proint1.udea.microcurriculo.TbMicEstadomic;
import com.proint1.udea.microcurriculo.TbMicEvaluacion;
import com.proint1.udea.microcurriculo.TbMicMicrocurriculo;
import com.proint1.udea.microcurriculo.TbMicNucleoacademico;
import com.proint1.udea.microcurriculo.TbMicUnidades;
import com.proint1.udea.microcurriculo.ngc.MicroCurriculoInt;
//import antlr.debug.Event;

public class CrearMicroCurriculoCtl extends GenericForwardComposer {

	private static Logger logger=Logger.getLogger(CrearMicroCurriculoCtl.class);
	
	Textbox txtnbMicIdn;
	Textbox txttbMicActa;
	Textbox txtvrAdtusuario;
	Textbox txtdtAdtfecha;
	Textbox txtvrMicNombre;
	Textbox txtvrMicValidable;
	Textbox txtnbMicHorasteoricasemanales;
	Textbox txtnbMicHorasterosem;
	Textbox txtnbMicNumerocreditos;
	Textbox txtnbHorasclasexsemestre;
	Textbox txtvrMicCampodeformacion;
	//Textbox txtnbScuIdn; borrar
	//Textbox txtnbNacIdn; borrar
	Textbox txtvrMicHabilitable;
	Textbox txtvrMicClasificable;
	Textbox txtvrMicRequisitos;
	Textbox txtvrMicCorrequisito;
	Textbox txtnbMicProgram;
	Textbox txtvrMicProposito;
	Textbox txtvrMicJustificacion;
	Textbox txtvrMicObjetivogeneral;
	Textbox txtvrMicObjetivosespecificos;
	Textbox txtvrMicContenidoresumido;
	Textbox txtnbMicEstado;
	//Textbox txtnbMicUnidad; borrar
	Textbox txtvrMicBibliografia;
	
	
	Textbox txttbMicUnidades;
	Textbox txttbMicEvaluacion;
	Textbox txttbMicNucleoacademico;
	Textbox txttbMicEstadomic;
	Textbox txttbAdmSemestrexcurso;
	
	
	
	Button btnCrear;
	
	private MicroCurriculoInt microCurriculoInt;
	
	public MicroCurriculoInt getMicroCurriculoInt(){
		return microCurriculoInt;
	}
	
	public void setMicroCurriculoInt(MicroCurriculoInt microCurriculoInt){
		this.microCurriculoInt = microCurriculoInt;
	}
	
	public void doAfterCompose(Component comp)throws Exception {
		super.doAfterCompose(comp);
		logger.info("cargando ventana ingresar micro curriculo");
	}
	
	public void onCreate() {
		
	}
	
	public void onClick$btnCrear(Event event) {
		
		TbMicMicrocurriculo tbMicMicrocurriculo = new TbMicMicrocurriculo();
		try {
			BigDecimal bigDecimal = new BigDecimal(txtnbMicIdn.getValue());
			tbMicMicrocurriculo.setNbMicIdn(bigDecimal) ;
			
			// TODO: Consultar el acta antes de ingresarla con un list box.
			TbMicActa tbMicActa = new TbMicActa();
			tbMicActa.setNbActIdn(Long.parseLong(txttbMicActa.getText()));
			
			tbMicMicrocurriculo.setVrAdtusuario(txtvrAdtusuario.getValue());
			
			SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd-mm-yyyy");
			tbMicMicrocurriculo.setDtAdtfecha(simpleDateFormat.parse(txtdtAdtfecha.getValue()));
			tbMicMicrocurriculo.setVrMicNombre(txtvrMicNombre.getValue());
			tbMicMicrocurriculo.setVrMicValidable(txtvrMicValidable.getValue());
			tbMicMicrocurriculo.setNbMicHorasteoricasemanales(Byte.parseByte(txtnbMicHorasteoricasemanales.getValue()));
			tbMicMicrocurriculo.setNbMicHorasterosem(Short.parseShort(txtnbMicHorasterosem.getValue()));
			tbMicMicrocurriculo.setNbMicNumerocreditos(Byte.parseByte(txtnbMicNumerocreditos.getValue()));
			tbMicMicrocurriculo.setNbHorasclasexsemestre(Short.parseShort(txtnbHorasclasexsemestre.getValue()));
			tbMicMicrocurriculo.setVrMicCampodeformacion(txtvrMicCampodeformacion.getValue());
			tbMicMicrocurriculo.setVrMicHabilitable(txtvrMicHabilitable.getValue());
			tbMicMicrocurriculo.setVrMicClasificable(txtvrMicClasificable.getValue());
			tbMicMicrocurriculo.setVrMicRequisitos(txtvrMicRequisitos.getValue());
			tbMicMicrocurriculo.setVrMicCorrequisito(txtvrMicCorrequisito.getValue());
			tbMicMicrocurriculo.setNbMicProgram(Byte.parseByte(txtnbMicProgram.getValue()));
			tbMicMicrocurriculo.setVrMicProposito(txtvrMicProposito.getValue());
			tbMicMicrocurriculo.setVrMicJustificacion(txtvrMicJustificacion.getValue());
			tbMicMicrocurriculo.setVrMicObjetivogeneral(txtvrMicObjetivogeneral.getValue());
			tbMicMicrocurriculo.setVrMicObjetivosespecificos(txtvrMicObjetivosespecificos.getValue());
			tbMicMicrocurriculo.setVrMicContenidoresumido(txtvrMicContenidoresumido.getValue());
			tbMicMicrocurriculo.setNbMicEstado(Byte.parseByte(txtnbMicEstado.getValue()));
			tbMicMicrocurriculo.setVrMicBibliografia(txtvrMicBibliografia.getValue());
			
			// TODO Arreglar el desorden del nuevo mapeo
			/*
			tbMicMicrocurriculo.setTbMicUnidades(tbMicUnidades);
			tbMicMicrocurriculo.setTbMicEvaluacion(tbMicEvaluacion);
			tbMicMicrocurriculo.setTbMicNucleoacademico(tbMicNucleoacademico);
			tbMicMicrocurriculo.setTbMicEstadomic(tbMicEstadomic);
			tbMicMicrocurriculo.setTbMicActa(tbMicActa);
			tbMicMicrocurriculo.setTbAdmSemestrexcurso(tbAdmSemestrexcurso);
			*/
			
			microCurriculoInt.insertarMicrocurriculo(tbMicMicrocurriculo);
		
			Messagebox.show("Se guardo el micro curriculo", "Informacion", Messagebox.OK, Messagebox.INFORMATION);
			self.detach();
		} catch (Exception e) {
			logger.error("Se ha producido un error: " + e);
		}
	}
}
